package com.fowo.api.model.listing.father;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * Listing 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class ListingFatherImportPo {

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** FNSKU */
  @ExcelProperty("FNSKU")
  @Size(max = 50, message = "FNSKU长度不能超过50")
  private String fnsku;

  /** 状态 */
  @ExcelProperty("状态")
  private String status;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 500, message = "标题长度不能超过500")
  private String title;

  /** 父ASIN */
  @ExcelProperty("父ASIN")
  @Size(max = 50, message = "父ASIN长度不能超过50")
  private String parentAsin;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 1000, message = "品名长度不能超过1000")
  private String productName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String shop;

  /** 站点 */
  @ExcelProperty("站点")
  @Size(max = 50, message = "站点长度不能超过50")
  private String regionName;

  @ExcelIgnore
  @Schema(title = "站点")
  private String region;

  /** 分类 */
  @ExcelProperty("分类")
  @Size(max = 50, message = "分类长度不能超过50")
  private String classifyName;

  @ExcelIgnore
  @Schema(title = "分类")
  private String classify;

  /** 品牌 */
  @ExcelProperty("品牌")
  @Size(max = 50, message = "品牌长度不能超过50")
  private String brandName;

  @ExcelIgnore
  @Schema(title = "品牌")
  private String brand;

  /** 配送方式 */
  @ExcelProperty("配送方式")
  private String distributionType;

  /** 总价 */
  @ExcelProperty("总价")
  @DecimalString(message = "总价小数格式不正确", label = "总价")
  private String totalPrice;

  /** 销售价格 */
  @ExcelProperty("销售价格")
  @DecimalString(message = "销售价格小数格式不正确", label = "销售价格")
  private String landedPrice;

  /** 价格 */
  @ExcelProperty("价格")
  @DecimalString(message = "价格小数格式不正确", label = "价格")
  private String price;

  /** 优惠价 */
  @ExcelProperty("优惠价")
  @DecimalString(message = "优惠价小数格式不正确", label = "优惠价")
  private String discounts;

  /** 可售量 */
  @ExcelProperty("可售量")
  @IntegerString(message = "可售量数值格式不正确", label = "可售量")
  private String afnFulfillableQuantity;

  /** 待调仓 */
  @ExcelProperty("待调仓")
  @IntegerString(message = "待调仓数值格式不正确", label = "待调仓", min = 0)
  private String reservedFcTransfers;

  /** 调仓中 */
  @ExcelProperty("调仓中")
  @IntegerString(message = "调仓中数值格式不正确", label = "调仓中", min = 0)
  private String reservedFcProcessing;

  /** 待发货 */
  @ExcelProperty("待发货")
  @IntegerString(message = "待发货数值格式不正确", label = "待发货", min = 0)
  private String reservedCustomerorders;

  /** 计划入库 */
  @ExcelProperty("计划入库")
  @IntegerString(
    message = "计划入库数值格式不正确",
    label = "计划入库",
    min = 0
  )
  private String afnInboundWorkingQuantity;

  /** 在途 */
  @ExcelProperty("在途")
  @IntegerString(message = "在途数值格式不正确", label = "在途", min = 0)
  private String afnInboundShippedQuantity;

  /** 入库中 */
  @ExcelProperty("入库中")
  @IntegerString(message = "入库中数值格式不正确", label = "入库中", min = 0)
  private String afnInboundReceivingQuantity;

  /** 不可售 */
  @ExcelProperty("不可售")
  @IntegerString(message = "不可售数值格式不正确", label = "不可售", min = 0)
  private String afnUnsellableQuantity;

  /** 预估FBA费 */
  @ExcelProperty("预估FBA费")
  @DecimalString(message = "预估FBA费小数格式不正确", label = "预估FBA费")
  private String fbaFee;

  /** 平台费 */
  @ExcelProperty("平台费")
  @DecimalString(message = "平台费小数格式不正确", label = "平台费")
  private String referralFee;

  /** FBM库存 */
  @ExcelProperty("FBM库存")
  @IntegerString(message = "FBM库存数值格式不正确", label = "FBM库存", min = 0)
  private String fbmInventory;

  /** 大类排名 */
  @ExcelProperty("大类排名")
  @Size(max = 50, message = "大类排名长度不能超过50")
  private String ranking;

  /** 大类排名所属的类别 */
  @ExcelProperty("大类排名所属的类别")
  @Size(max = 500, message = "大类排名所属的类别长度不能超过500")
  private String sellerCategory;

  /** 星级评分 */
  @ExcelProperty("星级评分")
  @Size(max = 50, message = "星级评分长度不能超过50")
  private String lastStar;

  /** 评论条数 */
  @ExcelProperty("评论条数")
  @IntegerString(message = "评论条数数值格式不正确", label = "评论条数")
  private String reviewNum;

  /** 负责人 */
  @ExcelProperty("负责人")
  @Size(max = 50, message = "负责人长度不能超过50")
  private String principalName;

  @ExcelIgnore
  @Schema(title = "负责人")
  private String principal;

  /** 配对方式 */
  @ExcelProperty("配对方式")
  private String pairType;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 商品备注 */
  @ExcelProperty("商品备注")
  @Size(max = 50, message = "商品备注长度不能超过50")
  private String productRemark;

  /** 商品开售时间 */
  @ExcelProperty("商品开售时间")
  @DateString(message = "商品开售时间不是有效的日期格式")
  private String saleDate;

  /** 商品首单时间 */
  @ExcelProperty("商品首单时间")
  @DateString(message = "商品首单时间不是有效的日期格式")
  private String firstOrderDate;

  /** 配对状态 */
  @ExcelProperty("配对状态")
  private String pairStatus;

  /** 配对产品 */
  @ExcelProperty("配对产品")
  @Size(max = 500, message = "配对产品长度不能超过500")
  private String pairProductName;

  @ExcelIgnore
  @Schema(title = "配对产品")
  private String pairProduct;

  /** 商品描述 */
  @ExcelProperty("商品描述")
  private String productDescription;

  /** 摘要 */
  @ExcelProperty("摘要")
  @Size(max = 500, message = "摘要长度不能超过500")
  private String bulletPoint;

  /** 搜索词 */
  @ExcelProperty("搜索词")
  @Size(max = 500, message = "搜索词长度不能超过500")
  private String searchTerms;

  /** Amazon分类 */
  @ExcelProperty("Amazon分类")
  @Size(max = 500, message = "Amazon分类长度不能超过500")
  private String amazonClassify;

  /** 商品类型 */
  @ExcelProperty("商品类型")
  @Size(max = 50, message = "商品类型长度不能超过50")
  private String productType;

  /** 销售类型 */
  @ExcelProperty("销售类型")
  @Size(max = 50, message = "销售类型长度不能超过50")
  private String salesType;

  /** GTIN豁免 */
  @ExcelProperty("GTIN豁免")
  @Size(max = 50, message = "GTIN豁免长度不能超过50")
  private String gtin;

  /** 商品编码 */
  @ExcelProperty("商品编码")
  @Size(max = 50, message = "商品编码长度不能超过50")
  private String productCode;

  /** 制造商 */
  @ExcelProperty("制造商")
  @Size(max = 50, message = "制造商长度不能超过50")
  private String manufacturer;

  /** 货币 */
  @ExcelProperty("货币")
  private String currency;

  /** 运费 */
  @ExcelProperty("运费")
  @Size(max = 50, message = "运费长度不能超过50")
  private String shipping;

  /** 积分 */
  @ExcelProperty("积分")
  @Size(max = 50, message = "积分长度不能超过50")
  private String points;

  /** 亚马逊定义的listing的id */
  @ExcelProperty("亚马逊定义的listing的id")
  @Size(max = 50, message = "亚马逊定义的listing的id长度不能超过50")
  private String listingId;

  /** 店铺id */
  @ExcelProperty("店铺id")
  @Size(max = 50, message = "店铺id长度不能超过50")
  private String sid;

  /** 商品的数量 */
  @ExcelProperty("商品的数量")
  @IntegerString(
    message = "商品的数量数值格式不正确",
    label = "商品的数量",
    min = 0
  )
  private String quantity;

  /** 配对更新时间 */
  @ExcelProperty("配对更新时间")
  @DateTimeString(message = "配对更新时间不是有效的时间日期格式")
  private String pairUpdateTime;

  /** 优惠开始日期 */
  @ExcelProperty("优惠开始日期")
  @DateString(message = "优惠开始日期不是有效的日期格式")
  private String discountsBegDate;

  /** 优惠结束日期 */
  @ExcelProperty("优惠结束日期")
  @DateString(message = "优惠结束日期不是有效的日期格式")
  private String discountsEndDate;

  /** 图片地址 */
  @ExcelProperty("图片地址")
  @Size(max = 1000, message = "图片地址长度不能超过1000")
  private String imageUrl;
}
